namespace admin.application.contracts.Configurations
{
    /// <summary>
    /// JWT 配置项
    /// </summary>
    public class JwtSettings
    {
        /// <summary>
        /// 颁发者
        /// </summary>
        public string Issuer { get; set; } = null!;
        /// <summary>
        /// 接收者
        /// </summary>
        public string Audience { get; set; } = null!;
        /// <summary>
        /// 密钥
        /// </summary>
        public string SecretKey { get; set; } = null!;
        /// <summary>
        /// Token 有效期（分钟）
        /// </summary>
        public int ExpireMinutes { get; set; } = 120;
        /// <summary>
        /// 容忍的时钟偏移（秒）
        /// </summary>
        public int ClockSkewSeconds { get; set; } = 60;
        /// <summary>
        /// RefreshToken 有效期（分钟）
        /// </summary>
        public int RefreshTokenExpireMinutes { get; set; } = 1440;
    }
}
